package com.bookcloud.java21.chapter11.Queue接口实现类114;

import java.util.*;

/** 队列接口实现类114 */
public class QueueDequeExamples {
  public static void main(String[] args) {
    // 一、LinkedList 实现了 Queue 接口，也可以作为队列使用
    Queue<String> queue = new LinkedList<>();
    // 1. 入队
    queue.offer("A");
    queue.offer("B");
    queue.offer("C");
    System.out.println("入队后元素：" + queue);
    // 2. 出队
    String poll = queue.poll();
    System.out.println("出队元素：" + poll);
    System.out.println("出队后元素：" + queue);
    System.out.println("再次出队元素：" + queue.poll());
    // 二、PriorityQueue示例（按优先级排序）
    Queue<String> priorityQueue = new PriorityQueue<>();
    priorityQueue.offer("A");
    priorityQueue.offer("B");
    priorityQueue.offer("C");
    System.out.println("PriorityQueue元素：" + priorityQueue);
    // 遍历PriorityQueue
    for (String str : priorityQueue) {
      System.out.println(str);
    }
    // 三、Deque示例（双端队列）
    Deque<String> deque = new ArrayDeque<>();
    deque.offer("A");
    deque.offer("B");
    deque.offer("C");
    System.out.println("Deque元素：" + deque);
  }
}
